Snyk Codeの脆弱性結果を見ていく
おはようございます( ◜◡◝ )
ゲームソリューション部/業務効率化ソリューション部のきだぱんです。
本ブログはClassmethod ゲーソル・ギョーソル Advent Calendar 2024の4日目のブログとなります!
ゲーソル、ギョーソルが気になる方は以下のブログも併せてご覧下さい!
さて今回はSnykです!
脆弱性管理ツールのSnykというSaas製品をご存知でしょうか。
今回は、Snyk Codeの脆弱性結果にどのような機能があるかについて書いていきたいと思います。
Snykとは
そもそもSnykとは、何なのか。 Snyk(スニーク)はデベロッパーファーストのセキュリティプラットフォームです。
Snykは、コードやオープンソースとその依存関係、コンテナやIaC(Infrastructure as a Code) における脆弱性を見つけるだけでなく、優先順位をつけて修正するためのツールです。 Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、デベロッパーが簡単に使うことができます。
Snyk は、Java、.NET、JavaScript、Python、Golang、PHP、C/C++、Ruby、Scalaなど、多くの言語とツールをサポートしています。
また、Docker、Terraform、k8s、Infrastructure as Codeのファイルスキャンもサポートしています。
Snykに連携していく
脆弱性結果を見る前に、パッケージを連携していきます。
Snykではさまざまな連携が可能です。
今回は、GitHubと連携しまして、脆弱性を多く含むgoofをスキャン対象とします。
脆弱性を確認する
実際に、Snyk UI上で、脆弱性をチェックしてみましょう。
まずは脆弱性スキャン対象のプロジェクトを表示する画面[project]で確認していきましょう。
今回は、Snyk Codeでスキャンした結果を見ていきます。
- 検出された問題の総数
- 脆弱性の深刻度
が表示されます。
Snyk Codeのスキャン結果は下記項目で表示されます。
- ①脆弱性の種類
- ②Snyk Learn
- 修正方法について学ぶことができます
- 例)NoSQL injection attack
- ③脆弱性スコア(~1,000点)
- 脆弱性の深刻度
- CWE(Common Weakness Enumeration: 共通脆弱性タイプ)
- 脆弱性の概要
- 脆弱性の存在するファイル名 / 行
- Ignoreボタン
多く検出されていて、全てを見るのは時間もかかってしまうかと思います。
そんな時はFilter機能を使用できます。以下の項目で絞り込むことが可能です。
- ISSUE TYPE
- SEVERITY
- PRIORITY SCORE(Scored between 0 - 1000)
- "FIXED IN" AVAILABLE
- COMPUTED FIXABILITY
- EXPLOIT MATURITY
- STATUS
- OS BINARIES
詳細な情報は[Full Details]から確認可能で、該当するコードがハイライトされて表示されます。
さらに、[Fix analysis]タブとSnyk Learnのリンク("Learn about this type of vulnerability and how to fix it")を併せて参照することで、脆弱性の詳細な解説と対応方法を包括的に学習できます.
おまけ
SnykのコマンドラインツールSnyk CLIでも脆弱性をチェックすることができます。
# Snyk CLIをインストールします
$ npm install snyk -g
# Snyk CLIがインストールされたか確認します
$ which snyk
# バージョンを確認します
$ snyk --version
# Snyk CLIを認証します。ブラウザで認証画面が出るので認証します
$ snyk auth
また、VS CodeなどのIDEと連携してチェックすることも可能です。
詳しくは以下もご覧下さい。
おわりに
今回はSnyk Codeの脆弱性結果について書きました。
Snykに関するブログも沢山展開されていますので、是非こちらもご覧ください。
この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。